`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date:    14:25:28 09/12/2012 
// Design Name: 
// Module Name:    Timer 
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module Timer(expired,reset,clk1hz,clk_i
    );
	parameter value=1;
	input reset,clk1hz; //definicion de variables de entrada y salida
	input clk_i;
	output expired;
	reg expired;
	reg [3:0] cuenta;
	initial begin 				//inicializacion de parametros
	expired=0;
	cuenta=0;
	end  
	always@(posedge clk_i) begin 	//cuenta hasta que se cumpla el valor de value y levanta la seal de expired y resetea el reloj
		if (reset) begin
			expired<=0; 
		end
		if(value==cuenta)
			begin
			expired<=1;
			end
		else if(expired==1)
			begin
				expired<=0;
			end  
	end
	always@( posedge clk1hz or posedge expired) begin
				if (reset) begin
					cuenta<=0;
				end
			   if(expired)begin
						cuenta<=0;
						end
				else
					begin
						cuenta<=cuenta+1;
					end
					
					end
endmodule